package class01;

public class StringTestArray {
    public static void main(String[] args) {
        Integer[] arr = new Integer[6];
        System.out.println(arr);
        //1.4.4 系列4：和字符/字符数组相关
        String str = "王者荣耀小乔、猪八戒、兰陵王";
        //
        //（18）char charAt(index)：返回[index]位置的字符
        char c = str.charAt(9);
        System.out.println(c);
        //（19）char[] toCharArray()： 将此字符串转换为一个新的字符数组返回
        char[] chars = str.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.print(chars[i] + "  ");
        }
        System.out.println();
        char[] a1 = new char[]{'a', 'b', 'c'};
        // 以下没有a1打印地址是因为调用了println(char[] x)
        System.out.println(a1);

        //（20）static String valueOf(char[] data)  ：返回指定数组中表示该字符序列的 String
        char[] data = new char[]{'王', '者', '荣', '耀', '小', '乔'};
        String newStr = String.valueOf(data);
        System.out.println(newStr);
        //（21）static String valueOf(char[] data, int offset, int count) ： 返回指定数组中表示该字符序列的 String
        char[] data2 = new char[]{'王', '者', '荣', '耀', '王', '者', '荣', '耀'};
//        第一个参数是数组，第二个参数是数组的起始位置，第三个参数是数组的长度
        String newStr2 = String.valueOf(data2, 3, 4);
        System.out.println(newStr2);
        //（22）static String copyValueOf(char[] data)： 返回指定数组中表示该字符序列的 String
        String newStr3 = String.copyValueOf(data2);
        System.out.println(newStr3);
        //（23）static String copyValueOf(char[] data, int offset, int count)：返回指定数组中表示该字符序列的 String
        //        第一个参数是数组，第二个参数是数组的起始位置左闭，第三个参数是数组的长度
        String newStr4 = String.copyValueOf(data2, 3, 4);
        System.out.println(newStr4);
        //1.4.5 系列5：开头与结尾
        char[] chars1 = new char[]{'大', '数', '据', 'J', 'a', 'v', 'a', '学', '习'};
        String classInfo = new String(chars1);
        System.out.println(classInfo);
        //
        //（24）boolean startsWith(xx)：测试此字符串是否以指定的字符串前缀开始
        boolean b1 = classInfo.startsWith("大数据J");
        System.out.println(b1);

        //（25）boolean startsWith(String prefix, int toffset)：测试此字符串从指定索引开始的子字符串是否以指定前缀开始
//        prefix–前缀。toffset–在这个字符串中从哪里开始查找。
        boolean b2 = classInfo.startsWith("Ja", 3);
        System.out.println(b2);
        //（26）boolean endsWith(xx)：测试此字符串是否以指定的连续字符串后缀结束
        boolean b3 = classInfo.endsWith("a习");
        System.out.println(b3);
        //
        //1.4.6 系列6：替换
        String str1 = "大数据JAVA";
        //
        //（27）String replace(char oldChar, char newChar)：返回一个新的字符串，它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 不支持正则。
        String replace = str1.replace('A', 'E');
        System.out.println(replace);

        //（28）String replace(CharSequence target, CharSequence replacement)：使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
        String replace1 = str1.replace("JAVA", "HADOOP");
        System.out.println(replace1);
        //（29）String replaceAll(String regex, String replacement)：使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
        String replace2 = str1.replaceAll("JAVA", ",HELLO");
        System.out.println(str1 +"0000000000000000000000");
        System.out.println(replace2);
        //（30）String replaceFirst(String regex, String replacement)：使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
        String str2 = "大数据JAVA,大数据JAVA,大数据JAVA";
        String replace3 = str2.replaceFirst("JAVA", ",HELLO");
        System.out.println(replace3);
    }


}
